The present invention generally relates to the field of mirrored data storage systems, and particularly to a system and method for synchronizing data mirrored by storage systems.
The reliable storage of computer data is one of the most important aspects of modem life. From applications and programs, to credit information, web sites, and the like, some of the most important aspects of an individual""s life are stored in an electronic form. One of the problems facing electronic storage is device failure and the subsequent loss of data. One of the methods utilized to lessen the chance of data device failure, and the resulting loss of information, is the use of mirrored data storage devices.
Mirrored data storage devices are devices in which data is written to at least two devices simultaneously. In this way, if one of the devices fail, the system may switch to the other device without a loss of data or service. Mirroring is useful as a way to keep data accessible in a reliable manner. However, although the data is typically available when one of the devices is suspended, such as when an interruption in operation occurs, it is still desirable to enable the data on the working subsystem to be mirrored on an additional device. In other words, to return the system to full operational status in case the remaining working subsystem suffers an operational failure, such as by returning the suspended device to operational status, using a replacement device, and the like. To accomplish this, mirrored devices previously copied all the data from the operational device to the suspended storage device. However, this may take a significant amount of time to perform, thereby causing a decrease in system resources. One method utilized to address this problem involved the transfer of only the data changed since the mirrored storage device became suspended. This was accomplished with a type of log or map that was maintained to track the data not transferred to the mirror. However, as storage devices became larger, the storage and processing required for maintaining this map has become increasingly larger.
Therefore, it would be useful to provide an improved system and method for synchronizing data between mirrored subsystems.
The present invention is directed to a system and method for synchronizing data between mirrored subsystems. In a first aspect of the present invention, a method for storing data includes receiving data suitable for storage to a first storage device and a second storage device, wherein the first storage device and the second storage device are mirrored. A map is created including at least one map entry having an identifier suitable for describing a range of addressable data blocks, wherein the map entry corresponds to a data block modified after operation of the first storage device is suspended. A map is stored including the map entry on the second storage device, wherein the map is suitable for being utilized to restore data stored on the second storage device to at least one of the first storage device and a third storage device.
In a second aspect of the present invention, a system for storing data includes a first storage device and a second storage device. The first storage device and the second storage device are suitable for receiving and storing data in a mirrored fashion. When operation of the first storage device is suspended, at least one map entry of a map including an identifier suitable for describing a range of addressable data blocks, modified after operation of the first storage device is suspended, is incremented. The map is suitable for being utilized to restore data stored on the second storage device to at least one of the first storage device and a third storage device.
In a third aspect of the present invention, a method for restoring mirrored data includes creating a map including at least one map entry having an identifier suitable for describing a range of addressable data blocks. In which, the map entry corresponds to a data block modified after operation of a first storage device is suspended. The map is stored, the map including the at least one map entry on a second storage device. At least one of the first storage device and a third storage device are restored. In which, the map stored on the second storage device is suitable for being utilized to restore data stored on the second storage device to at least one of the first storage device and the third storage device. Thus, data on the second storage device is mirrored by at least one of the first storage device and the third storage device.
It is to be understood that both the forgoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles of the invention.